Keep native subagent composers visible and disabled - #446
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native Codex and Claude Code subagent threads previously replaced the entire composer with a read-only caption, hiding their model and execution settings. Keep the composer visible and disabled, move the existing localized caption into the text field, and retain the model, reasoning effort, access mode and Build/Plan controls. Narrow layouts show access and mode in the drawer. Returning to a normal thread restores its editable draft.
The runtime mirror owner now inherits parent settings at creation and persists provider-reported child model and effort. Later events with missing fields preserve the last observation. The UI derives read-only state from the existing session index; no new protocol field, dependency or provider-specific UI path is introduced. Updated the visual contract in
docs/DESIGN.md.Tests extend the runtime mirror contract to cover inherited settings, child overrides and persistence across completion. The shell test exercises inert controls at 1200, 760 and 393 logical pixels, an effort value for an uncatalogued model, and restoring the parent draft. No coverage was removed.
Validation performed locally on macOS:
cargo fmt --all --checkcargo clippy --workspace --all-targets --locked -- -D warningscargo build --workspace --lockedcargo test --workspace --locked(1150 passed, 0 failed, 5 explicitly ignored), followed by UI tests after final UI guard refinementscargo-machete .(0.9.2; the installed binary'scargo macheteinvocation treats the subcommand name as a path)RUSTFLAGS='-D warnings'No live provider task was submitted for visual verification. Native Windows/Linux validation is delegated to CI. Desktop builds retain existing linker unwind-table and
blockfuture-compatibility warnings.CI follow-up: the initial macOS run failed the existing
session_replica_matches_live_timeline_for_synthetic_turntest (the live timeline lacked the initial replayed turn). Both tests changed by this PR passed. The existing test passed 100 consecutive local repetitions; rerunning the macOS job on the identical commit passed. All six CI checks are now green. The underlying intermittent failure was not reproduced locally or changed in this PR.